/**
 * Copyright (c) 2000-2012 Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package vn.com.fis.portal.vtcc.service;

import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.transaction.Isolation;
import com.liferay.portal.kernel.transaction.Propagation;
import com.liferay.portal.kernel.transaction.Transactional;
import com.liferay.portal.service.PersistedModelLocalService;

/**
 * The interface for the sample entry local service.
 *
 * <p>
 * This is a local service. Methods of this service will not have security checks based on the propagated JAAS credentials because this service can only be accessed from within the same VM.
 * </p>
 *
 * @author loind
 * @see SampleEntryLocalServiceUtil
 * @see vn.com.fis.portal.vtcc.service.base.SampleEntryLocalServiceBaseImpl
 * @see vn.com.fis.portal.vtcc.service.impl.SampleEntryLocalServiceImpl
 * @generated
 */
@Transactional(isolation = Isolation.PORTAL, rollbackFor =  {
	PortalException.class, SystemException.class})
public interface SampleEntryLocalService extends PersistedModelLocalService {
	/*
	 * NOTE FOR DEVELOPERS:
	 *
	 * Never modify or reference this interface directly. Always use {@link SampleEntryLocalServiceUtil} to access the sample entry local service. Add custom service methods to {@link vn.com.fis.portal.vtcc.service.impl.SampleEntryLocalServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface.
	 */

	/**
	* Adds the sample entry to the database. Also notifies the appropriate model listeners.
	*
	* @param sampleEntry the sample entry
	* @return the sample entry that was added
	* @throws SystemException if a system exception occurred
	*/
	public vn.com.fis.portal.vtcc.model.SampleEntry addSampleEntry(
		vn.com.fis.portal.vtcc.model.SampleEntry sampleEntry)
		throws com.liferay.portal.kernel.exception.SystemException;

	/**
	* Creates a new sample entry with the primary key. Does not add the sample entry to the database.
	*
	* @param sampleId the primary key for the new sample entry
	* @return the new sample entry
	*/
	public vn.com.fis.portal.vtcc.model.SampleEntry createSampleEntry(
		long sampleId);

	/**
	* Deletes the sample entry with the primary key from the database. Also notifies the appropriate model listeners.
	*
	* @param sampleId the primary key of the sample entry
	* @throws PortalException if a sample entry with the primary key could not be found
	* @throws SystemException if a system exception occurred
	*/
	public void deleteSampleEntry(long sampleId)
		throws com.liferay.portal.kernel.exception.PortalException,
			com.liferay.portal.kernel.exception.SystemException;

	/**
	* Deletes the sample entry from the database. Also notifies the appropriate model listeners.
	*
	* @param sampleEntry the sample entry
	* @throws SystemException if a system exception occurred
	*/
	public void deleteSampleEntry(
		vn.com.fis.portal.vtcc.model.SampleEntry sampleEntry)
		throws com.liferay.portal.kernel.exception.SystemException;

	/**
	* Performs a dynamic query on the database and returns the matching rows.
	*
	* @param dynamicQuery the dynamic query
	* @return the matching rows
	* @throws SystemException if a system exception occurred
	*/
	@SuppressWarnings("rawtypes")
	public java.util.List dynamicQuery(
		com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
		throws com.liferay.portal.kernel.exception.SystemException;

	/**
	* Performs a dynamic query on the database and returns a range of the matching rows.
	*
	* <p>
	* Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set.
	* </p>
	*
	* @param dynamicQuery the dynamic query
	* @param start the lower bound of the range of model instances
	* @param end the upper bound of the range of model instances (not inclusive)
	* @return the range of matching rows
	* @throws SystemException if a system exception occurred
	*/
	@SuppressWarnings("rawtypes")
	public java.util.List dynamicQuery(
		com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
		int end) throws com.liferay.portal.kernel.exception.SystemException;

	/**
	* Performs a dynamic query on the database and returns an ordered range of the matching rows.
	*
	* <p>
	* Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set.
	* </p>
	*
	* @param dynamicQuery the dynamic query
	* @param start the lower bound of the range of model instances
	* @param end the upper bound of the range of model instances (not inclusive)
	* @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
	* @return the ordered range of matching rows
	* @throws SystemException if a system exception occurred
	*/
	@SuppressWarnings("rawtypes")
	public java.util.List dynamicQuery(
		com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
		int end,
		com.liferay.portal.kernel.util.OrderByComparator orderByComparator)
		throws com.liferay.portal.kernel.exception.SystemException;

	/**
	* Returns the number of rows that match the dynamic query.
	*
	* @param dynamicQuery the dynamic query
	* @return the number of rows that match the dynamic query
	* @throws SystemException if a system exception occurred
	*/
	public long dynamicQueryCount(
		com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
		throws com.liferay.portal.kernel.exception.SystemException;

	@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
	public vn.com.fis.portal.vtcc.model.SampleEntry fetchSampleEntry(
		long sampleId)
		throws com.liferay.portal.kernel.exception.SystemException;

	/**
	* Returns the sample entry with the primary key.
	*
	* @param sampleId the primary key of the sample entry
	* @return the sample entry
	* @throws PortalException if a sample entry with the primary key could not be found
	* @throws SystemException if a system exception occurred
	*/
	@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
	public vn.com.fis.portal.vtcc.model.SampleEntry getSampleEntry(
		long sampleId)
		throws com.liferay.portal.kernel.exception.PortalException,
			com.liferay.portal.kernel.exception.SystemException;

	@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
	public com.liferay.portal.model.PersistedModel getPersistedModel(
		java.io.Serializable primaryKeyObj)
		throws com.liferay.portal.kernel.exception.PortalException,
			com.liferay.portal.kernel.exception.SystemException;

	/**
	* Returns a range of all the sample entries.
	*
	* <p>
	* Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set.
	* </p>
	*
	* @param start the lower bound of the range of sample entries
	* @param end the upper bound of the range of sample entries (not inclusive)
	* @return the range of sample entries
	* @throws SystemException if a system exception occurred
	*/
	@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
	public java.util.List<vn.com.fis.portal.vtcc.model.SampleEntry> getSampleEntries(
		int start, int end)
		throws com.liferay.portal.kernel.exception.SystemException;

	/**
	* Returns the number of sample entries.
	*
	* @return the number of sample entries
	* @throws SystemException if a system exception occurred
	*/
	@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
	public int getSampleEntriesCount()
		throws com.liferay.portal.kernel.exception.SystemException;

	/**
	* Updates the sample entry in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
	*
	* @param sampleEntry the sample entry
	* @return the sample entry that was updated
	* @throws SystemException if a system exception occurred
	*/
	public vn.com.fis.portal.vtcc.model.SampleEntry updateSampleEntry(
		vn.com.fis.portal.vtcc.model.SampleEntry sampleEntry)
		throws com.liferay.portal.kernel.exception.SystemException;

	/**
	* Updates the sample entry in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
	*
	* @param sampleEntry the sample entry
	* @param merge whether to merge the sample entry with the current session. See {@link com.liferay.portal.service.persistence.BatchSession#update(com.liferay.portal.kernel.dao.orm.Session, com.liferay.portal.model.BaseModel, boolean)} for an explanation.
	* @return the sample entry that was updated
	* @throws SystemException if a system exception occurred
	*/
	public vn.com.fis.portal.vtcc.model.SampleEntry updateSampleEntry(
		vn.com.fis.portal.vtcc.model.SampleEntry sampleEntry, boolean merge)
		throws com.liferay.portal.kernel.exception.SystemException;

	/**
	* Returns the Spring bean ID for this bean.
	*
	* @return the Spring bean ID for this bean
	*/
	public java.lang.String getBeanIdentifier();

	/**
	* Sets the Spring bean ID for this bean.
	*
	* @param beanIdentifier the Spring bean ID for this bean
	*/
	public void setBeanIdentifier(java.lang.String beanIdentifier);

	/**
	* @findBy_SN_SS_SC_CY_ON_SOC_SI_H_IM_IT_DT_IP_CP_OC_A_STRAINID()
	* @param scientificName
	* @param sampleSynonym
	* @param sampleCode
	* @param catalogYear
	* @param otherName
	* @param sampleOtherCode
	* @param sourceIsolation
	* @param history
	* @param isolationMethod
	* @param isolationTime
	* @param depositionTime
	* @param isolationPerson
	* @param cellMorphology
	* @param otherCharacteristics
	* @param applications
	* @param strainId int value
	* @andOperator boolean
	* @andOperator start
	* @andOperator end
	* @return List<SampleEntry>
	*/
	public java.util.List<vn.com.fis.portal.vtcc.model.SampleEntry> findBy_SN_SS_SC_CY_ON_SOC_SI_H_IM_IT_DT_IP_CP_OC_A_STRAINID(
		java.lang.String scientificName, java.lang.String sampleSynonym,
		java.lang.String sampleCode, java.lang.String catalogYear,
		java.lang.String otherName, java.lang.String sampleOtherCode,
		java.lang.String sourceIsolation, java.lang.String history,
		java.lang.String isolationMethod, java.lang.String isolationTime,
		java.lang.String depositionTime, java.lang.String isolationPerson,
		java.lang.String cellMorphology, java.lang.String otherCharacteristics,
		java.lang.String applications, int strainId, boolean andOperator,
		int start, int end)
		throws com.liferay.portal.kernel.exception.SystemException;

	/**
	* @countBy_SN_SS_SC_CY_ON_SOC_SI_H_IM_IT_DT_IP_CP_OC_A_STRAINID
	* @param scientificName
	* @param sampleSynonym
	* @param sampleCode
	* @param catalogYear
	* @param otherName
	* @param sampleOtherCode
	* @param sourceIsolation
	* @param history
	* @param isolationMethod
	* @param isolationTime
	* @param depositionTime
	* @param isolationPerson
	* @param cellMorphology
	* @param otherCharacteristics
	* @param applications
	* @param strainId int value
	* @andOperator boolean
	* @return List<SampleEntry>
	*/
	public int countBy_SN_SS_SC_CY_ON_SOC_SI_H_IM_IT_DT_IP_CP_OC_A_STRAINID(
		java.lang.String scientificName, java.lang.String sampleSynonym,
		java.lang.String sampleCode, java.lang.String catalogYear,
		java.lang.String otherName, java.lang.String sampleOtherCode,
		java.lang.String sourceIsolation, java.lang.String history,
		java.lang.String isolationMethod, java.lang.String isolationTime,
		java.lang.String depositionTime, java.lang.String isolationPerson,
		java.lang.String cellMorphology, java.lang.String otherCharacteristics,
		java.lang.String applications, int strainId, boolean andOperator)
		throws com.liferay.portal.kernel.exception.SystemException;
}